Crowdsourcing based on base station almanac quality

ABSTRACT

Systems, apparatus and methods for a mobile device and a base station almanac server to throttle crowdsourcing information are presented. The crowdsourcing information may be used to improve a location of a base station in a base station almanac. A base station almanac is received from a base station almanac server. Crowdsourcing information for at least one base station is collected, including identifying an identifier for each base station and determining a position estimate of the mobile device for each base station. A crowdsourcing throttle is determined based on the base station almanac and the crowdsourcing information is sent to the base station almanac server based on the crowdsourcing throttle.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims the benefit of and priority to U.S. application Ser. No. 14/801,588, filed Jul. 16, 2015, and entitled “Crowdsourcing based on base station almanac quality,” which is divisional of and claims the benefit of and priority to U.S. application Ser. No. 13/830,004, filed Mar. 14, 2013, and entitled “Crowdsourcing based on base station almanac quality,” both of which are incorporated herein by reference in their entireties.

BACKGROUND

I. Field of the Invention

This disclosure relates generally to systems, apparatus and methods for determining a base station position, and more particularly to determining a base station position based on crowdsourcing from mobile stations.

II. Background

Many applications require an estimate of a mobile station's position estimate. To acquire a position estimate, a mobile station may determine its position relative to three or more base stations assuming a location of each base station is already known. The base station locations may be communicated from the base stations to the mobile station. Alternatively, the base station locations may be communicated from a base station almanac (BS almanac) server to the mobile station via a base station.

Inaccuracies in the BS almanac directly lead to inaccuracies in a position estimate of a mobile station. Therefore, a means is needed to refine a known location of a base station in a BS almanac.

BRIEF SUMMARY

Systems, apparatus and methods for a mobile device and a base station almanac server to throttle crowdsourcing information are presented. The crowdsourcing information is used to improve a location of a base station in a base station almanac. Systems, apparatus and methods for a mobile device and a base station almanac server to throttle crowdsourcing information are presented. The crowdsourcing information may be used to improve a location of a base station in a base station almanac. A base station almanac is received from a base station almanac server. Crowdsourcing information for at least one base station is collected, including identifying an identifier for each base station and determining a position estimate of the mobile device for each base station. A crowdsourcing throttle is determined based on the base station almanac and the crowdsourcing information is sent to the base station almanac server based on the crowdsourcing throttle.

According to some aspects, disclosed is a method in a mobile device for reporting crowdsourcing data, the method comprising: receiving, from a base station almanac server, a base station almanac; collecting crowdsourcing information for at least one base station, collecting comprising, for each base station of the at least one base station: identifying an identifier for each base station; determining a position estimate of the mobile device for each base station; determining a crowdsourcing throttle based on the base station almanac; and sending, to the base station almanac server based on the crowdsourcing throttle, the crowdsourcing information.

According to some aspects, disclosed is a mobile device for throttling crowdsourcing data, the mobile device comprising: a transceiver configured to: receive, from a base station almanac server, a base station almanac; receive an identifier of a base station; send crowdsourcing information to the base station almanac server; and a processor coupled to the transceiver and configured to collect crowdsourcing information for at least one base station, wherein the processor is configured to collect crowdsourcing information for each base station of the at least one base station, by being configured to: identify an identifier for each base station; determine a position estimate of the mobile device for each base station; wherein the processor is further configured to determine a crowdsourcing throttle based on the base station almanac; and send, to the base station almanac server based on the crowdsourcing throttle, the crowdsourcing information with the transceiver.

According to some aspects, disclosed is a non-transitory computer-readable storage medium including program code stored thereon for a mobile device to throttle crowdsourcing data, comprising program code to: receive, from a base station almanac server, a base station almanac; collect crowdsourcing information for at least one base station, wherein the program code to collect crowdsourcing information comprises program code to, for each base station of the at least one base station: identify an identifier for each base station; determine a position estimate of the mobile device for each base station; determine a crowdsourcing throttle based on the base station almanac; and send, to the base station almanac server based on the crowdsourcing throttle, the crowdsourcing information.

It is understood that other aspects will become readily apparent to those skilled in the art from the following detailed description, wherein it is shown and described various aspects by way of illustration. The drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWING

Embodiments of the invention will be described, by way of example only, with reference to the drawings.

FIG. 1 illustrates a group of anonymous clients in both a sparsely populated area and a densely populated area.

FIG. 2 shows a mobile station obtaining a BS almanac in a conventional system.

FIG. 3 shows a mobile station obtaining a BS almanac with a crowdsourcing throttle, in accordance with some embodiments of the present invention.

FIGS. 4-6 illustrate various crowdsourcing throttles, in accordance with some embodiments of the present invention.

FIGS. 7-11 shown crowdsourcing information, in accordance with some embodiments of the present invention.

FIGS. 12-13 show a system using a threshold, in accordance with some embodiments of the present invention.

FIGS. 14-15 show ranging information between mobile stations and base stations, in accordance with some embodiments of the present invention.

FIG. 16 illustrates a clustering algorithm, in accordance with some embodiments of the present invention.

FIG. 17 shows a method to communicate crowdsourcing information, in accordance with some embodiments of the present invention.

FIGS. 18-19 illustrate a mobile station and a base station almanac server, respectively, in accordance with some embodiments of the present invention.

DETAILED DESCRIPTION

The detailed description set forth below in connection with the appended drawings is intended as a description of various aspects of the present disclosure and is not intended to represent the only aspects in which the present disclosure may be practiced. Each aspect described in this disclosure is provided merely as an example or illustration of the present disclosure, and should not necessarily be construed as preferred or advantageous over other aspects. The detailed description includes specific details for the purpose of providing a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the concepts of the present disclosure. Acronyms and other descriptive terminology may be used merely for convenience and clarity and are not intended to limit the scope of the disclosure.

Position determination techniques described herein may be implemented in conjunction with various wireless communication networks such as a wireless wide area network (WWAN), a wireless local area network (WLAN), a wireless personal area network (WPAN), and so on. The term “network” and “system” are often used interchangeably. A WWAN may be a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal Frequency Division Multiple Access (01-DMA) network, a Single-Carrier Frequency Division Multiple Access (SC-FDMA) network, Long Term Evolution (LTE), and so on. A CDMA network may implement one or more radio access technologies (RATs) such as cdma2000, Wideband-CDMA (W-CDMA), and so on. Cdma2000 includes IS-95, IS-2000, and IS-856 standards. A TDMA network may implement Global System for Mobile Communications (GSM), Digital Advanced Mobile Phone System (D-AMPS), or some other RAT. GSM and W-CDMA are described in documents from a consortium named “3rd Generation Partnership Project” (3GPP). Cdma2000 is described in documents from a consortium named “3rd Generation Partnership Project 2” (3GPP2). 3GPP and 3GPP2 documents are publicly available. A WLAN may be an IEEE 802.11x network, and a WPAN may be a Bluetooth network, an IEEE 802.15x, or some other type of network. The techniques may also be implemented in conjunction with any combination of WWAN, WLAN and/or WPAN.

A satellite positioning system (SPS) typically includes a system of transmitters positioned to enable entities to determine their location on or above the Earth based, at least in part, on signals received from the transmitters. Such a transmitter typically transmits a signal marked with a repeating pseudo-random noise (PN) code of a set number of chips and may be located on ground based control stations, user equipment and/or space vehicles. In a particular example, such transmitters may be located on Earth orbiting satellite vehicles (SVs). For example, a SV in a constellation of Global Navigation Satellite System (GNSS) such as Global Positioning System (GPS), Galileo, GLONASS or Compass may transmit a signal marked with a PN code that is distinguishable from PN codes transmitted by other SVs in the constellation (e.g., using different PN codes for each satellite as in GPS or using the same code on different frequencies as in GLONASS). In accordance with certain aspects, the techniques presented herein are not restricted to global systems (e.g., GNSS) for SPS. For example, the techniques provided herein may be applied to or otherwise enabled for use in various regional systems, such as, e.g., Quasi-Zenith Satellite System (QZSS) over Japan, Indian Regional Navigational Satellite System (IRNSS) over India, Beidou over China, etc., and/or various augmentation systems (e.g., an Satellite Based Augmentation System (SBAS)) that may be associated with or otherwise enabled for use with one or more global and/or regional navigation satellite systems. By way of example but not limitation, an SBAS may include an augmentation system(s) that provides integrity information, differential corrections, etc., such as, e.g., Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), Multi-functional Satellite Augmentation System (MSAS), GPS Aided Geo Augmented Navigation or GPS and Geo Augmented Navigation system (GAGAN), and/or the like. Thus, as used herein an SPS may include any combination of one or more global and/or regional navigation satellite systems and/or augmentation systems, and SPS signals may include SPS, SPS-like, and/or other signals associated with such one or more SPS.

As used herein, a mobile device, sometimes referred to as a mobile station (MS) or user equipment (UE), such as a cellular phone, mobile phone or other wireless communication device, personal communication system (PCS) device, personal navigation device (PND), Personal Information Manager (PIM), Personal Digital Assistant (PDA), laptop or other suitable mobile device which is capable of receiving wireless communication and/or navigation signals. The term “mobile device” is also intended to include devices which communicate with a personal navigation device (PND), such as by short-range wireless, infrared, wireline connection, or other connection—regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device or at the PND. Also, “mobile device” is intended to include all devices, including wireless communication devices, computers, laptops, etc. which are capable of communication with a server, such as via the Internet, WiFi, or other network, and regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device, at a server, or at another device associated with the network. Any operable combination of the above are also considered a “mobile device.”

FIG. 1 illustrates a group of anonymous clients in both a sparsely populated area and a densely populated area. In a densely populated area, such as in an urban area, a base station (e.g., BS_(I)) supports many mobile devices (drawn with an ‘x’ symbol). In a sparsely populated area, such as in a rural area, a base station (e.g., BS₂) supports only a low number of mobile devices.

If a base station has an unknown or uncertain location to a base station almanac server, ranging information from three mobile devices having known locations (e.g., GNSS locations with low uncertainty) may be provided to the base station almanac server compute a location estimate of the base station. Ranging information from a greater number of mobile devices may be statically combined to average out uncertainties and more precisely determine a location estimate of the base station.

Alternatively, no ranging information is available. Assume a particular base station has an unknown or uncertain location to a base station almanac server. Also assume a large number of records exists where each record identifies the particular base station and a corresponding location of a mobile device. Each record is created by a mobile device determining crowdsourcing information, where the crowdsourcing information includes a cellular identifier identifying the particular base station and a position from the mobile device (e.g., GNSS locations with low uncertainty). The crowdsourcing information does not necessarily contain any ranging information. The base station almanac server may determine a location of the particular base station from a mean or median of the positions of the various mobile devices. For example, suppose a base station almanac server has 100 recent records identifying a particular base station as a serving base station and a corresponding GPS position estimate. The location of the particular base station may be approximated as the center of the cloud of 100 GPS positions. For example, the base station almanac server may compute a location estimate of the base station as a mean or median of the locations of 100 mobile device positions. Thereby, positioning information from a great number of mobile devices may be statically combined to average out uncertainties and more precisely determine a location estimate of the base station.

In turn, the improved location estimate of a particular base station may be included in future base station almanac responses. A base station almanac server maintains and updates a base station almanac containing an identity of each cell and a location estimate (e.g., latitude, longitude and altitude) with a corresponding uncertainty of each cell.

When ranging information is part of crowdsourcing information, each mobile device participating in crowdsourcing (also referred to as anonymous clients) provides its position (e.g., a GNSS position or other position estimate independent of a target base station) and a range to the target base station. In sparsely populated areas, the base station almanac server may receive an adequate number of records containing cell identification, optional ranging information from a mobile position, and a position estimate of the mobile device. In densely populated areas, however, the base station almanac server may be overwhelmed with duplicate data (records from the same position estimates from different mobile devices), which taxes the processing power of the base station almanac server, unnecessarily occupies channel bandwidth and consumes processing power on the mobile device.

FIG. 2 shows a mobile station obtaining a BS almanac in a conventional system. In a conventional system, a mobile device, such as a mobile station or MS, sends a request for a base station almanac to a base station almanac server. The request message contains information identifying a current cell of the mobile device. The base station almanac server receives the request and, based on the current cell identifier of the mobile device, forms base station almanac information tailored to the cell identifier. The base station almanac server then sends a response message containing the base station for the current cell.

FIG. 3 shows a mobile station obtaining a BS almanac with a crowdsourcing throttle, in accordance with some embodiments of the present invention. The mobile device (shown as an MS) sends a conventional request for a base station almanac for the current cell from a base station almanac server. The base station almanac server determines which part of its entire base station almanac to form, based on the current cell of the mobile device an abridged base station almanac. The base station almanac server sends a response message containing the abridged base station almanac to the mobile device. The response message also contains a crowdsourcing throttle.

A crowdsourcing throttle may be implicit or explicit. When implicit, a mobile device does not receive a crowdsourcing throttle as a message from a base station almanac server. Instead, the mobile device has been configured to report back based on conditions of the network, conditions of the mobile device, conditions of the position estimate, or the like. For example, a mobile device having an unlimited data plan may be configured to periodically (e.g., at a defined period or a rate of once every week) report back all records of base stations seen by the mobile device.

When an explicit crowdsourcing throttle command is communicated from a base station almanac server to a mobile device, the crowdsourcing throttle tells the mobile device if crowdsourcing is enabled and how and/or when to report back to the base station almanac server with a cellular identifier, ranging information and a position of the mobile station. In some embodiments, the cellular identifier unambiguously identifies a cell. As previously mentioned, a request message includes a cell identifier. If the cell identifier represents a cell needing a more precise location, the base station almanac server may send a crowdsourcing throttle.

FIGS. 4-6 illustrate various crowdsourcing throttles, in accordance with some embodiments of the present invention. In FIG. 4, a crowdsourcing throttle may include a flag to enable and disable crowdsourcing in a mobile device. For example, when crowdsourcing is enabled, a mobile device may send crowdsourcing information: (1) when available; (2) periodically; or (3) when a block of memory on the mobile device's is full. When crowdsourcing is disabled, a mobile device may either just discard crowdsourcing information or save crowdsourcing information for a later time.

In FIG. 5, a crowdsourcing throttle may include a level that indicates a period. For example, a zero value disables crowdsourcing, crowdsourcing information is sent every 240 hours for a one value, every 120 hours for a two value, and so on, and every hour for a value of seven. Other values and number of levels may indicate different periodical values.

In FIG. 6, a quality of the base station almanac is indicated by a level. For example, zero indicates a very poor quality, a one indicates a poor quality, a two indicates an okay or acceptable quality, and a three indicates a good or better quality of the base station almanac. Other gradients and number of levels are possible.

FIGS. 7-11 shown crowdsourcing information, in accordance with some embodiments of the present invention. In FIG. 7, a mobile device sends a request including collected crowdsourcing information. The collected crowdsourcing information may be for a single base station up to all base stations seen from a mobile device's position. Alternative, the collected crowdsourcing information may be for multiple positions of the mobile device of time. A base station almanac server receives the request and compiles the crowdsourcing information for use in improving locations of one or more base stations recorded in the base station almanac. The base station almanac server may respond to the mobile device with an acknowledgement (ACK) message. By receiving this ACK message, the mobile device knows the base station almanac server received the crowdsourcing message.

In FIG. 8, the mobile device again sends a request message. The request message requests a base station almanac (similar to the request shown in FIG. 3) from the base station almanac server. This request message, however, serves a dual role. That is, the request message combines the base station almanac requesting function (described above with reference to FIG. 3) and the crowdsourcing reporting function (described above with reference to FIG. 7). As such, the request messing includes a cell identifier for a new current cell (new current cell identifier) and also the crowdsourcing information collected by the mobile device. In response, the base station almanac server determines what base station almanac is appropriate for the new current cell and also what kind of crowdsourcing throttle is needed for that new current cell. The base station almanac server includes in a response message both the determined base station almanac appropriate for the new current cell and the crowdsourcing throttle.

In FIG. 9, the crowdsourcing information is illustrated. The crowdsourcing information includes record having an identifier of a cell, optional ranging information, and the position of the mobile device. The crowdsourcing information may include multiple of such records representing two or more base stations that can be seen from a current or previous position of the mobile device and/or representing two or more base stations that have been seen at different positions of the mobile device. The cellular identifier distinguishes one cell from other cells. The cellular identifier may provide a unique and unambiguous identifier to only one base station. Alternative, the cellular identifier may provide an ambiguous identifier of a base station.

The cellular identifier may include a Cell ID. The cellular identifier may also include a local area code (LAC), tracking area code (TAC), a system identity (SID) and/or a network identity (NID). The cellular identifier may also include a mobile network code (MNC). The cellular identifier may also include a mobile country code (MCC). If the cellular identifier includes both an MNC and an MCC, the combination may be represented by a public land mobile network (PLMN=MCC+MNC). If the cellular identifier includes both a TAC and a PLMN, the combination may be represented by a tracking area indicator (TAI=PLMN+TAC).

The ranging information may include signal strength, such as a received signal strength indication (RSSI). The signal strength may be an absolute value or a relative value, such as a path loss. The signal strength may be converted from a signal level or power level to a distance (e.g., via a heat map). The ranging information may include a time-of-flight value, such as a relative time value (e.g., one-way time (OWT), round-trip time (RTT)) or an absolute value (e.g., time of arrival (TOA)). The time-of-flight value may be converted from a time to a distance by multiplying by the speed of light. The ranging information may a combination of signal strength(s) and/or time-of-flight value(s).

The position may include a GNSS position (e.g., a GPS position) of the mobile device. Alternatively, the position may be formed with ranging information to base stations and access points with low location uncertainty and excluding the base station identified by the cellular identifier. Alternatively, no ranging information is used and a location of a base station is determined to be the center of a cluster of mobile device positions.

The crowdsourcing information may also include additional information such as a base station's frequency or frequencies used by the identified cell, identifiers of its neighbors, a modulation mode or network type, a PN code and/or a frequency hopping pattern. The additional information may be used to further identify an ambiguously identified cell.

In FIG. 10, the crowdsourcing throttle is shown to throttle based on a type of client or mobile device. That is, the crowdsourcing throttle may identify that a command applies to certain types of mobile devices. For example, the crowdsourcing throttle applies to all mobile devices (0), just smart phones (1), just mobile devices with an unlimited data plan (2), or a combination of types of mobile devices.

In FIG. 11, the crowdsourcing throttle is shown to throttle based on a type of base station. That is, the crowdsourcing throttle may inform a mobile device to collect crowdsourcing information from a certain sort of base station(s). For example, the crowdsourcing throttle indicates that a command to collect crowdsourcing information applies to all base stations (0), just LTE base stations (1), just CDMA base stations (2), just GSM base stations (3), or a combination of types of base stations.

FIGS. 12-13 show a system using a threshold, in accordance with some embodiments of the present invention. In FIG. 12, the crowdsourcing throttle may be indicated as target threshold of results derived from ranging information and an independently derived position of the mobile device. For example, ranging information from three or more base stations indicates a first position of the mobile device. A second position of the mobile device is formed from GNSS measurements or base stations that are independent of the cells used for ranging. If a difference between first position and the second position is greater than a threshold, the mobile device reports this discrepancy as crowdsourcing information.

In FIG. 13, a first position of the mobile device is based on ranges to three or more base stations. The location of the base stations is found in the base station almanac. A second position of the mobile device is computed from a different set of base stations or access points, or alternatively, from GNSS measurements (e.g., GPS measurements). If the distance between the first position and the second position is greater than a threshold, the mobile device sends this information as crowdsourcing information to a base station almanac server. The base station almanac server may use this crowdsourcing information to determine or refine a location of one or more base stations. In some embodiments, data used to compute the first position is independent from data used to compute the second position.

FIGS. 14-15 show ranging information between mobile stations and base stations, in accordance with some embodiments of the present invention. In FIG. 14, crowdsourcing information is shown from the point of a mobile device. For example, the mobile device, from a single position, may “see” an RF signal from each of three or more base stations (BS₁, BS₂ and BS₃). The mobile device determines range information (range₁, range₂ and range₃) to the three base stations (BS₁, BS₂ and BS₃), respectively. In this case, the mobile device forms three records, one for each base station, for the crowdsourcing information. From ranging information for three base stations, the mobile device may determine a first position of the mobile device. With more than three base stations, the mobile device may apply an over-determined algorithm to find the first position. To determine the second position, the mobile device may use GNSS signals (such as from a GPS receiver) or three or more additional base stations with lower uncertainty than the first three base stations (BS₁, BS₂ and BS₃). At this or a later point, the mobile device may report the records as crowdsourcing information. Alternatively, the mobile device may only report the records if the discrepancy between the first position and the second position is greater than a threshold.

In FIG. 15, crowdsourcing information is shown from the point of a base station. A base station almanac server accesses one or more records from records of crowdsourcing information. That is, the base station almanac server determines that the records all apply to the same base station. Ranging information from the mobile devices (MS₁, MS₂ and MS₃) determines a location of the base station. Ranging information from four or more mobile devices also determines a location of the base station via application of an over-determined algorithm If the location of the base station is unknown in the base station almanac, the base station almanac server may use the location as determined from the ranging information. If the location of the base station is known in the base station almanac, the base station almanac server may use the location as determined from the ranging information to refine or adjust the known location of the base station.

FIG. 16 illustrates a clustering algorithm, in accordance with some embodiments of the present invention. Crowdsourcing information includes records from a plurality of mobile devices. A large number of records contain a cellular identifier of the same target base station and positions of various mobile devices. In this case, the crowdsourcing information does not include ranging information or the ranging information is not used. A center of mass, average, average weighted by uncertainty, mean or median is computed from the positions of various mobile devices. The computed center of mass, or the like, may be used as the location of the target base station. Alternatively, the computed center of mass may be used to adjust or refine a location of the target base station as found in a base station almanac.

FIG. 17 shows a method to communicate crowdsourcing information, in accordance with some embodiments of the present invention. At 310, a mobile device receives a crowdsourcing throttling command for reporting crowdsourcing information. At 320, the mobile device receives a base station almanac that is based in a current cell from a base station almanac server.

At 330, the mobile device collects the crowdsourcing information for at least one base station as described below in step 332 to 338. At 332, the mobile device identifies a cellular identifier for the particular base station. At 334, the mobile device measures ranging information between a particular base station and the mobile device. At 336, the mobile device determines a GNSS position estimate of the mobile device or other position estimate independent from the particular base station(s). At 338, the mobile device records the crowdsourcing information for the particular base station. The crowdsourcing information comprising the cellular identifier, the ranging information and the position estimate of the mobile device.

At 340, the mobile device sends, based on the crowdsourcing throttling command, the crowdsourcing information to the base station almanac server.

FIGS. 18-19 illustrate a mobile station and a base station almanac server, respectively, in accordance with some embodiments of the present invention. In FIG. 18, the mobile device 400 includes a WWAN transceiver 410, an optional GNSS receiver 420, and a processor 430 coupled to the WWAN transceiver 410 and the GNSS receiver 420. The processor 430 executes code or instructions to perform functions of a mobile device 400 described herein.

In FIG. 19, the base station almanac server 500 includes a network transceiver 510 for coupling to a mobile device 400. The base station almanac server 500 also includes a processor 530 coupled to the network transceiver 510. The processor 530 executes code or instructions to perform functions of a base station almanac server 500 described herein.

The methodologies described herein may be implemented by various means depending upon the application. For example, these methodologies may be implemented in hardware, firmware, software, or any combination thereof. For a hardware implementation, the processing units may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, or a combination thereof.

For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in a memory and executed by a processor unit. Memory may be implemented within the processor unit or external to the processor unit. As used herein the term “memory” refers to any type of long term, short term, volatile, nonvolatile, or other memory and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.

If implemented in firmware and/or software, the functions may be stored as one or more instructions or code on a computer-readable medium. Examples include computer-readable media encoded with a data structure and computer-readable media encoded with a computer program. Computer-readable media includes physical computer storage media. A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer; disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

In addition to storage on computer readable medium, instructions and/or data may be provided as signals on transmission media included in a communication apparatus. For example, a communication apparatus may include a transceiver having signals indicative of instructions and data. The instructions and data are configured to cause one or more processors to implement the functions outlined in the claims. That is, the communication apparatus includes transmission media with signals indicative of information to perform disclosed functions. At a first time, the transmission media included in the communication apparatus may include a first portion of the information to perform the disclosed functions, while at a second time the transmission media included in the communication apparatus may include a second portion of the information to perform the disclosed functions.

The previous description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects without departing from the spirit or scope of the disclosure. 

What is claimed is:
 1. A method in a mobile device for reporting crowdsourcing data, the method comprising: receiving, from a base station almanac server, a base station almanac; collecting crowdsourcing information for at least one base station, collecting comprising, for each base station of the at least one base station: identifying an identifier for each base station; determining a position estimate of the mobile device for each base station; determining a crowdsourcing throttle based on the base station almanac; and sending, to the base station almanac server based on the crowdsourcing throttle, the crowdsourcing information.
 2. The method of claim 1, wherein determining the crowdsourcing throttle determines when the crowdsourcing information is to be sent.
 3. The method of claim 1, wherein determining the crowdsourcing throttle based on the base station almanac comprises determining the crowdsourcing information is to be sent when available, periodically, or when a block of memory in the mobile device is full.
 4. The method of claim 1, wherein determining the crowdsourcing throttle based on the base station almanac comprises determining the crowdsourcing information is to be sent based on information in the base station almanac.
 5. The method of claim 1, wherein the crowdsourcing throttle comprises a threshold for a discrepancy in information in the base station almanac, and wherein sending, to the base station almanac server based on the crowdsourcing throttle, the crowdsourcing information comprises determining that there is a discrepancy in the information in the base station almanac that is greater than the threshold and in response sending the crowdsourcing information.
 6. The method of claim 5, wherein the discrepancy in the information in the base station almanac is between a first position estimate for the mobile device derived using a set of information from the base station almanac and a second position estimate for the mobile device derived using a different set of information.
 7. The method of claim 1, wherein the crowdsourcing throttle identifies a base station for which the crowdsourcing information is to be sent.
 8. The method of claim 1, wherein the collecting the crowdsourcing information for the at least one base station is based on the crowdsourcing throttle.
 9. The method of claim 1, wherein the collecting further comprises: measuring ranging information between the at least one base station and the mobile device; wherein the crowdsourcing information further comprises the ranging information.
 10. The method of claim 1, further comprising: sending a request for the base station almanac with an identifier for a base station; and receiving the base station almanac with the crowdsourcing throttle.
 11. A mobile device for throttling crowdsourcing data, the mobile device comprising: a transceiver configured to: receive, from a base station almanac server, a base station almanac; receive an identifier of a base station; send crowdsourcing information to the base station almanac server; a processor coupled to the transceiver and configured to collect crowdsourcing information for at least one base station, wherein the processor is configured to collect crowdsourcing information for each base station of the at least one base station, by being configured to: identify an identifier for each base station; determine a position estimate of the mobile device for each base station; wherein the processor is further configured to determine a crowdsourcing throttle based on the base station almanac; and send, to the base station almanac server based on the crowdsourcing throttle, the crowdsourcing information with the transceiver.
 12. The mobile device of claim 11, wherein the crowdsourcing throttle indicates when the crowdsourcing information is to be sent.
 13. The mobile device of claim 11, wherein the crowdsourcing throttle indicates that the mobile device is to send the crowdsourcing information when the crowdsourcing information is available, periodically, or when a block of memory in the mobile device is full.
 14. The mobile device of claim 11, wherein the crowdsourcing throttle indicates that when the mobile device sends the crowdsourcing information is based on information in the base station almanac.
 15. The mobile device of claim 11, wherein the crowdsourcing throttle comprises a threshold for a discrepancy in information in the base station almanac, and wherein the processor is configured to send, to the base station almanac server based on the crowdsourcing throttle, the crowdsourcing information with the transceiver by being configured to determine that there is a discrepancy in the information in the base station almanac that is greater than the threshold and in response send the crowdsourcing information.
 16. The mobile device of claim 15, wherein the discrepancy in the information in the base station almanac is between a first position estimate for the mobile device derived using a set of information from the base station almanac and a second position estimate for the mobile device derived using a different set of information.
 17. The mobile device of claim 11, wherein the crowdsourcing throttle identifies a base station for which the crowdsourcing information is to be sent.
 18. The mobile device of claim 11, wherein the processor is further configured to collect crowdsourcing information for the at least one base station based on the crowdsourcing throttle.
 19. The mobile device of claim 11, wherein the collecting further comprises: measuring ranging information between the at least one base station and the mobile device; wherein the crowdsourcing information further comprises the ranging information.
 20. A non-transitory computer-readable storage medium including program code stored thereon for a mobile device to report crowdsourcing data, comprising program code to: receive, from a base station almanac server, a base station almanac; collect crowdsourcing information for at least one base station, wherein the program code to collect crowdsourcing information comprises program code to, for each base station of the at least one base station: identify an identifier for each base station; determine a position estimate of the mobile device for each base station; determine a crowdsourcing throttle based on the base station almanac; and send, to the base station almanac server based on the crowdsourcing throttle, the crowdsourcing information. 